AGX: A Generator for X (eggs)

erstellt von Jens W. Klein — 28.11.2009 12:20

Today is the third day of sprint - restrospective on the first two.

AGX sprint participantsNow after two successful days of the sprint  we have a good outcome.

Michael Launay and Vincent Fretin from Ecreall  (Lille/ France) arrived Wednesday evening after a 1000km car-ride and joined Robert and Jens at BlueDynamics Office in Innsbruck Thursday morning. After synchronizing our minds showing what was done so far we started pair-programming. We expected Gogo from Vienna to join us in the evening, but he got ill and was not able to get on his flight. But fortunately he started to help out remotely.

Michael + Jens worked on the UML internal model. The import of XMI to UML, and the internal model (class-diagram) representaion was already finished by Jens and Robert in the last 3 weeks. Now the real difficult work had to be done: Get useful information out of the model. We wrote some convinience classes following roughly the adpater pattern (but not using ZCA here). Its all tested and documented by doctests - I'd say we have a very good coverage. Most of the time was needed to find the edge-cases in modelling.

Vincent + Robert paired to work on the transformation and generation of Python-code. The connection of the transformations as a chain works now. The generation for filesystem-structures is almost done. Python generation is work in progress and task for today. Gogo helped here by taking specific tasks. All code is tested and documented with doctests as well.

Today we plan to finish the UML convinience API and get the core work for Python-code-representation in a tree done. If this is done we can start writing our first real code generation chain: And what will it be? No, not Plone-code: We will generate AGX-generators! This means: python eggs, packages, modules, methods, classes and decorators.

for the agx-sprint team

-- Jensens

Artikelaktionen
0 Comments

AGX Sprint in Innsbruck 26.-28.11.09

erstellt von Jens W. Klein — 09.11.2009 12:00

Development Sprint on AGX tree transformations and code generation engine.

AGX LogoAfter the great Plone Conference in Budapest and its sprint we did a huge step forward to a working AGX transformation chain. Last friday november the 6th we sprinted internally on the AGX engine and now have a working XMI to UML transformation. Some tiny bits are missing, but the overall transformation works. The UML to Python transformation is about 40% finished either.

We invite everybody interested in writing handlers for code generation to a three day development-sprint in Innsbruck.

Goals are:

  1. Getting more people into AGX and showing them the easiness of writing AGX transforms.
  2. Finish the Python-Code-Generation
  3. Invent a domain-specifc UML language (profile) for Dexterity.
  4. Generate Dexterity types for Plone 4.

It will be held at the office of Klein & Partner KEG. We start at November 26th at 9:00 am. Our office is available the whole 24h of 3 days until Nov 28th. We help booking accomodiation and recommend Hotel Zillertal  (where we probably get 10% reduction - waiting for conformation). Snacks, lunch-buffet and drinks are available. For those still needing x-mas presents I can recommend the famous Christkindl-Market.

Contact: jens@bluedynamics.com

 

Artikelaktionen
0 Comments

Plone Conference 2009 Budapest (#1)

erstellt von Jens W. Klein — 29.10.2009 13:51

First short report

BlueDynamics Alliance is at Plone Conference in Budapest! Peter Holzer, Robert Niederreiter and me, Jens Klein. Also Johannes Raggam, our intern from last year is here.

Its good to meet all the people from Plone Community. Amazing how many new people are here!

We are listing to some interesting talks and if theres no we started to sprint on AGX, the framework for tree-transformations which is the base of the new (Code-) Generator.

I prepared a lighting talk on cornerstone.soup, our lightweight isolated conatainer for queryable records - based on ZTKand made for Plone.

Robert prepared a lightning talk about AGX. Johannes will show the outcome of his thesis, a "activity model runtime engine for python" - which uses AGX and the underlying zodict-Node.

 

Artikelaktionen
0 Comments

How UML2 and MOF relate

erstellt von Johannes Raggam — 07.05.2009 14:45

I'm currently working on my diploma thesis called "Activity Model Runtime Engine for Python". This engine will be loosely based on the "UML Activity Diagram" specification using Python and Zope3 components.

wikipedia.org-Impossible_staircase-300.pngA month ago I participated at a modeling sprint at BlueDynamics in Innsbruck.

 

Meta-Meta-Modeling

There we were discussing a generic meta modeling framework which could be used to manage models, manipulate models, validate them and so on. There is already a framework in development called cornerstone.model, but we were spinning ideas around a metamodel framework based on the ideas of the OMG, specifically a MOF[1] (Meta Object Facility) based metamodeling stack.

The MOF Specification provides basic meta-meta model elements to build meta models upon. The OMG's metamodeling vision defines 4 modeling layers, as illustrated below:

metamodeling-mda.png

 

OMG's meta layers. Illustration based on [2], pg.62

 

The MOF is a meta-meta modeling language and sits on the the modeling layer M3. We thought (and some literature implies this) that the UML metamodel is an instance of the MOF. We discussed the idea of bootstrapping the metamodel framework out of OMG's specifications in form of XMI files (such bootstrapping is realized in some degree by the Coral framework ([3], pg. 2-3)).

However, thats not the case. We found that the UML specification is split into the "UML Infrastructure" and the "UML Superstructure" specifications. The UML infrastructure defines the meta-meta model of UML while the UML language definition (the metamodel) is defined in the superstructure. But, the superstructure contains more: the infrastructure is merged into the superstructure ([4], pg. 686) and is therefore self-contained. It defines the whole stack. See the illustration below.

 

metamodeling-uml.png

 

Illustration of UML's meta levels

 

But now, what about the MOF?

In UML2 the infrastructure was aligned with the MOF2 ([4], pg. 7). MOF2 is built on a subset of the UML2 infrastructure ([5] pg. 29). Both are equivalent but not the same. UML is not really an instance of MOF but should be compatible to any MOF based toolkit.

The MOF can be used for any metamodel and is the basis for CWM (Common Warehouse Metamodel) and so on.

Attention: This can screw your head.

The UML specification and other work by the OMG are great, but we left our metamodel bootstrapping idea behind. Now I focus my work on a metamodel for activities without any formalized meta-meta model behind it. I think that this pragmatic approach is quite sufficient.

References:

[1] http://www.omg.org/mof/
[2] Stahl et al. Modellgetriebene Softwareentwicklung, 2.Auflage. dpunkt Verlag 2007
[3] Marcus Alanen and Ivan Porres. The Coral Modelling Framework. http://www.tucs.fi/publications/attachment.php?fname=inpAlPo04a.pdf
[4] Rumbaugh, Jacobson, Booch. The Unified Modeling Language Reference Manual, Second Edition. Addison-Wesley, 2005
[5] Meta Object Facility (MOF) Core Specification. http://doc.omg.org/formal/2006-01-01.pdf

The picture "Impossible Staircase" is made by Sakurambo and can be downloaded from Wikipedia.

 

Artikelaktionen
0 Comments

ArchGenXML auf den Linuxwochen 2009 Wien

erstellt von Jens W. Klein — 16.04.2009 10:14

ArchGenXML - Kooperative Entwicklung eines Code-Generators

Linuxwochen Austria 2009Auf den Linuxwochen in Wien stelle ich ArchGenXML vor und fokussiere auf die kooperative Entwicklung unseres Code-Generators. Vielen Dank an Christian Schwarzinger und die Open Source Expert Group der Wirtschaftkammer Österreich, die mich dazu eingeladen haben.

Ich werde Antworten auf folgende Fragen liefern: Wie entstand ArchGenXML? Was ist ArchGenXML? Welche Personen und Firmen machen und machten mit? Warum ist das Projekt erfolgreich? Wohin geht es zukünftig?

Der Vortrag ist am 17. April 2009 im Wappensaal des Wiener Rathauses. Mehr Infos auf den Seiten der Linuxwochen

Artikelaktionen
0 Comments
1 2